package com.yunke.service;

import com.yunke.common.result.YunkeResult;

import java.util.List;
import java.util.Map;

/**
 * 数据统计Service接口
 * 
 * @author yunke
 * @since 1.0.0
 */
public interface YunkeDataStatisticsService {

    /**
     * 获取仪表板概览数据
     */
    YunkeResult<Map<String, Object>> getDashboardOverview();

    /**
     * 获取用户统计数据
     */
    YunkeResult<Map<String, Object>> getUserStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取搭子统计数据
     */
    YunkeResult<Map<String, Object>> getPartnerStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取服务统计数据
     */
    YunkeResult<Map<String, Object>> getServiceStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取订单统计数据
     */
    YunkeResult<Map<String, Object>> getOrderStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取财务统计数据
     */
    YunkeResult<Map<String, Object>> getFinanceStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取分销统计数据
     */
    YunkeResult<Map<String, Object>> getDistributionStatistics(String startDate, String endDate, Integer dimension);

    /**
     * 获取实时数据
     */
    YunkeResult<Map<String, Object>> getRealTimeData();

    /**
     * 获取趋势分析数据
     */
    YunkeResult<List<Map<String, Object>>> getTrendAnalysis(Integer type, String startDate, String endDate);

    /**
     * 获取热门数据排行
     */
    YunkeResult<Map<String, Object>> getHotRanking();

    /**
     * 获取地区分析数据
     */
    YunkeResult<List<Map<String, Object>>> getRegionAnalysis();

    /**
     * 导出统计报表
     */
    YunkeResult<String> exportReport(Integer type, String startDate, String endDate);

    /**
     * 生成统计数据
     */
    YunkeResult<Void> generateStatistics(String date);

    /**
     * 清理过期统计数据
     */
    YunkeResult<Void> cleanExpiredData(Integer days);
} 